package org.domain.acount.session;

import org.domain.acount.entity.*;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.Arrays;

@Name("pessoaList")
public class PessoaList extends EntityQuery<Pessoa> {

	private static final String EJBQL = "select pessoa from Pessoa pessoa";

	private static final String[] RESTRICTIONS = {
			"lower(pessoa.nome) like lower(concat(#{pessoaList.pessoa.nome},'%'))",
			"lower(pessoa.endereco) like lower(concat(#{pessoaList.pessoa.endereco},'%'))",
			"lower(pessoa.bairro) like lower(concat(#{pessoaList.pessoa.bairro},'%'))",
			"lower(pessoa.complemento) like lower(concat(#{pessoaList.pessoa.complemento},'%'))",
			"lower(pessoa.cidade) like lower(concat(#{pessoaList.pessoa.cidade},'%'))",
			"lower(pessoa.uf) like lower(concat(#{pessoaList.pessoa.uf},'%'))",
			"lower(pessoa.dddtelefone) like lower(concat(#{pessoaList.pessoa.dddtelefone},'%'))",
			"lower(pessoa.telefone) like lower(concat(#{pessoaList.pessoa.telefone},'%'))",
			"lower(pessoa.dddcelular) like lower(concat(#{pessoaList.pessoa.dddcelular},'%'))",
			"lower(pessoa.celular) like lower(concat(#{pessoaList.pessoa.celular},'%'))",
			"lower(pessoa.rg) like lower(concat(#{pessoaList.pessoa.rg},'%'))",
			"lower(pessoa.ssp) like lower(concat(#{pessoaList.pessoa.ssp},'%'))",
			"lower(pessoa.cpfcnpj) like lower(concat(#{pessoaList.pessoa.cpfcnpj},'%'))",
			"lower(pessoa.profissao) like lower(concat(#{pessoaList.pessoa.profissao},'%'))",
			"lower(pessoa.nacionalidade) like lower(concat(#{pessoaList.pessoa.nacionalidade},'%'))",
			"lower(pessoa.estadocivil) like lower(concat(#{pessoaList.pessoa.estadocivil},'%'))",
			"lower(pessoa.email) like lower(concat(#{pessoaList.pessoa.email},'%'))", };

	private Pessoa pessoa = new Pessoa();

	public PessoaList() {
		setEjbql(EJBQL);
		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
		setMaxResults(25);
	}

	public Pessoa getPessoa() {
		return pessoa;
	}
}
